package cn.gwm.flink.streaming.dws.reservecharge;

import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;

/**
 * @author Liu.Nanfang
 * @date 2022/7/19 13:33
 * @description
 */
@Data
@ToString(callSuper = true)
@SuppressWarnings("all")
public class ReserveChargeData {
    private String aoiId;                         // 充电站高德地图id
    private String aoiType;                       // 充电站类型
    private Integer OBC_ConnectSts_EV;            // 慢充
    private Integer BMS_DCChrgConnect;            // 快充
    private Long chrgConnectTid;                  // 插枪时间
    private Long startChargeTime;                 // 充电开始时间
    private BigDecimal BMS_SOC;                   // 开始 soc|当前电量
    private BigDecimal BMS_SOE;                   // 开始soe
    private BigDecimal BMS_SOH;                   // 开始soh1   车端计算
    private BigDecimal BMS_SOH_COR;               // 开始soh2    云端计算
    private BigDecimal OBC_ChrgrOutputVolt;       // 开始时输出电压 慢
    private BigDecimal EVCC_EVSEOutputV;          // 开始时 输出电压  快
    private BigDecimal OBC_ChrgrOutputCurr;       // 开始时输出电流  慢
    private BigDecimal EVCC_EVSEOutputC;          // 开始时输出电流 快
    private BigDecimal EVCC_EVSEOutputP;          // 开始时输出功率 快
    private Integer BMS_BattCurr_RM;              // 开始时充电电流  取整
    private Integer BMS_BattVolt_RM;              // 开始时 充电电压 取整        统一取 rm 字段
    private Integer BMS_RMC_ModuleTempMax;        // 开始电池最高温度
    private Integer BMS_RMC_ModuleTempMin;        // 开始电池最低温度
    private Integer BMS_ModuleTempaverage;        // 开始电池平均温度
    private BigDecimal ACAmbTemp;                 // 开始时环境温度   无此字段，后续会添加
    private Long endChargeTime;                   // 充电结束时间
    private BigDecimal end_BMS_SOC;               // 结束 soc
    private BigDecimal end_BMS_SOE;               // 结束soe
    private BigDecimal end_BMS_SOH;               // 结束soh1
    private BigDecimal end_BMS_SOH_COR;           // 结束soh2
    private Integer end_BMS_RMC_ModuleTempMax;    // 结束电池最高温度
    private Integer end_BMS_RMC_ModuleTempMin;    // 结束电池最低温度
    private Integer end_BMS_ModuleTempaverage;    // 结束电池平均温度
    private BigDecimal end_ACAmbTemp;             // 结束时环境温度
    private BigDecimal end_OBC_ChrgrOutputVolt;   // 结束时输出电压 慢
    private BigDecimal end_EVCC_EVSEOutputV;      // 束时输出电压  快
    private BigDecimal end_OBC_ChrgrOutputCurr;   // 结束时输出电流  慢
    private BigDecimal end_EVCC_EVSEOutputC;      // 结束时输出电流 快
    private BigDecimal end_EVCC_EVSEOutputP;      // 结束时输出功率
    private Integer end_BMS_BattCurr_RM;          // 结束时充电电流  取整
    private Integer end_BMS_BattVolt_RM;          // 结束时 充电电压 取整
    private Long end_chrgConnectTid;              // 拔枪时间
    private Integer chargeSuccOrFail;             // 结果状态，成功、失败    充电结束的结果
    private Integer chrgLogicNum;                 // 逻辑充电次数
    private String faultCode;                     // 故障码
    private String chargeType;                    // 充电类型
    private String chargeStatus;                  // 充电状态
    private BigDecimal latitude;
    private BigDecimal longitude;
    private String adCode;                         // 完整城市编码
    private String deviceId;                       // vin码
    private Long item_time;                        // 数据时间，UTC
    private String vehicletype;                    // 车辆类型
    private String datedt;                         // 数据日期
    private String model_code;                     // 车型四码
    /**
     * BMS_ChrgDurationTime 车端信号值
     */
    private Long BMS_ChrgTime;                     // 车端预测时长
    private Long effectiveChargeTime;              // 有效充电时长 秒
    private BigDecimal Tbox_BattSOCLim;            // 目标SOC|目标电量
    private String endFlag;                        // 状态结束 每一次充电状态的切换标示
    /**
     * 业务充电状态
     * 对多种状态进行合并
     */
    private Integer buChargeStatus;

    /**
     * 连接类型：1： 慢充 2:快充
     * OBC_ConnectSts_EV 与 BMS_DCChrgConnect 联合判断
     */
    private Integer chargeConnectType;
    /**
     * 充电电量类型
     */
    private String chargePowerType;
    /**
     * 车机软件版本
     */
    private String BMS_SWVersion;
    /**
     * 充电时间 分钟
     */
    private Long chargeTimeMinute;
    /**
     * 云端预测充电时间(分钟)
     */
    private Long calculateChargeTimeMinute;

    /**
     * 预测准确度
     */
    private Integer calculateDegree;


    /**
     * 充电模式 1: 立即充电 2:  智能充电 3:  预约充电
     */
    private Integer chargeModel;
    /**
     * 焦虑soc
     */
    private Integer anxietySoc;

    /**
     * 低谷时段 格式：HH:mm-HH:mm (开始时间-结束时间)
     */
    private String offPeakTime;
    /**
     * 高峰时段 格式：HH:mm-HH:mm (开始时间-结束时间)
     */
    private String onPeakTime;
    /**
     * 谷段结束继续充电 1否 2 是
     */
    @Deprecated
    private Integer ifContinueCharging;
    /**
     * 不分时电价
     */
    private BigDecimal nonTimePrice;
    /**
     * 平峰电价
     */
    private BigDecimal flatPeakPrice;
    /**
     * 低谷电价
     */
    private BigDecimal lowPeakPrice;
    /**
     * 高峰电价
     */
    private BigDecimal highPeakPrice;

    /**
     * 优惠电量（千瓦时）
     */
    private Double discountPower;
    /**
     * 非优惠电量（千瓦时）
     */
    private Double expensivePower;

    /**
     * 优惠充电时间 (分钟)
     */
    private Integer discountTime;
    /**
     * 非优惠充电时间 (分钟)
     */
    private Integer expensiveTime;

    /**
     * 充电电量
     */
    private Double chargingCapacity;
    /**
     * 预测充电电量
     */
    private Integer calculateChargingCapacity;

    /**
     * 优惠费用（元）总费用
     */
    private BigDecimal discountAmount;
    /**
     * 总费用（元）
     */
    private BigDecimal totalAmount;
    /**
     * 当前电量 百分比
     */
    private Integer currentElectricPower;
    /**
     * 目标电量 百分比
     */
    private Integer targetElectricPower;
    /**
     * 充电地点类型
     */
    private Integer chargeAreaType;

    /**
     * 业务充电开始时间
     */
    private Long busiStartChargeTime;
    /**
     * 业务结束开始时间
     */
    private Long busiEndChargeTime;
    /**
     * 真实socOC
     */
    private BigDecimal BMS_InnerSOC;

    /**
     * 结束显示soc
     */
    private BigDecimal end_BMS_InnerSOC;
    /**
     * poiId
     */
    private String poiId;
    /**
     * poiType
     */
    private String poiType;
    /**
     * 动力类型ev或者phev
     */
    private String custom_type;

    /**
     * 是否临时下发报告标识
     */
    private Boolean favourable;


}
